package com.yoga.dao.dao;

import com.yoga.common.bo.PlainVipBO;
import com.yoga.common.qto.PlainVipQTO;
import com.yoga.common.qto.YogaUserQTO;
import com.yoga.dao.domain.PlainVipDO;
import com.yoga.dao.domain.YogaUserDO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 *  DAO接口
 * 
 * @Author hdx
 * @Date 2020年09月24日
 */
@Mapper 
public interface PlainVipDao{

    /**
     * 
     * 方法insert的功能描述：新增
     * 
     * @param record
     * @return int
     * <PRE>
     * author hdx 
     * Date 2020年09月24日
     * </PRE>
     */
    int insert(PlainVipDO record);

    /**
     * 
     * 方法deleteById的功能描述：根据Id删除
     * 
     * @param id
     * @return int
     * <PRE>
     * author hdx 
     * Date 2020年09月24日
     * </PRE>
     */
    int deleteById(Long id);

    /**
     * 
     * 方法updateById的功能描述：根据Id更新
     * 
     * @param record
     * @return int
     * <PRE>
     * author hdx 
     * Date 2020年09月24日
     * </PRE>
     */
    int updateById(PlainVipDO record);

    /**
     * 团课会员续卡
     * @param record
     * @return
     */
    int renewPlainVip(PlainVipDO record);

    int cutClassNum(@Param("id") Long id);
    int addClassNum(@Param("id") Long id);

    /**
     * 
     * 方法findById的功能描述：根据Id查询
     * 
     * @param id
     * @return PlainVipDO
     * <PRE>
     * author hdx 
     * Date 2020年09月24日
     * </PRE>
     */
    PlainVipDO findById(Long id);

    /**
     * 通过用户id查询
     * @param yogaUserId
     * @return
     */
    PlainVipDO findByYogaUserId(@Param("yogaUserId") Long yogaUserId);

    Integer findForPageCount(PlainVipQTO plainVipQTO);

    List<PlainVipDO> findForPage(PlainVipQTO plainVipQTO);
}